package modelo.estados;

import modelo.exception.StatusChangeException;
import modelo.exception.SameStateException;

/**
 * 
 * @author Cristian
 *
 */
public abstract class Estado {
	
	public abstract Estado cambiarAIniciado() throws SameStateException, StatusChangeException;
	public abstract Estado cambiarACreado() throws SameStateException, StatusChangeException;
	public abstract Estado cambiarACerrado() throws SameStateException, StatusChangeException;
	public abstract Estado cambiarAPausado() throws SameStateException, StatusChangeException;
	public abstract Estado cambiarAEnTrabajo() throws SameStateException, StatusChangeException;
	public abstract Estado cambiarAFinalizado() throws SameStateException, StatusChangeException;
	
	public boolean estaFinalizado() {
		return false;
	}
	public boolean estaCerrado(){
		return false;
	}
	public boolean estaCreado(){
		return false;
	}
	public boolean estaTrabajando(){
		return false;
	}
	public boolean estaIniciado(){
		return false;
	}
	public boolean estaPausado(){
		return false;
	}
	public abstract String getNombre();
	
}
